Creating groups of users in a social networking system

ABSTRACT

A social networking system facilitates a user&#39;s creation of a group of other users from among the user&#39;s connections in the user&#39;s social network. The created groups may be used, for example, to publish information to certain user-defined groups or to define privacy settings or other access rights to the user&#39;s content according to such user-defined groups. When a user adds connections to a group, the social networking system determines suggested connections that have not been added to the group, based on a similarity of the suggested connections with one or more of the connections who have been added to the group. These suggested connections are then presented to the user to facilitate the creation of the group. Both positive and negative feedback may be used to generate a useful set of suggestions, which may be updated as the user further defines the group.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/751,915 filed Mar. 31, 2010, which is incorporated by reference inits entirety.

BACKGROUND

The present invention relates generally to social networking services,and more particularly to facilitating a user's creation of a group ofother users from among the user's connections in the user's socialnetwork. As used herein, a “user” can be an individual or an entity(such as a business or third party application). The term “connection”refers individuals and entities with which a user of the socialnetworking service may form a connection, association, or otherrelationship.

Users of social networking services may form connections, associations,or other relationships with other users based on real-life interactions,online interactions, or a mixture of both. For example, users may befrom the same geographic location, may travel in the same circle offriends, or may have attended the same college or university. Contentposted by a user may be made available to the user's connections via oneor more of various communication channels in the social networkingsystem, such as a newsfeed or stream. A user may create a list ofconnections (also referred to as a “friend list”) to prioritize thecontent available in the newsfeed or stream.

Social networking systems often make use of user-defined groups ofconnections. For example, a user may wish to publish information tocertain user-defined groups of the user's connections in the socialnetworking system, or the user may wish to define privacy settings orother access rights to the user's content according to such user-definedgroups. As a user becomes connected with more users in the socialnetworking system over time, mechanisms that allow a user to creategroups of the user's connections become highly labor-intensive and oftenlead to incomplete or smaller lists because of the inherent difficultyin grouping a user's connections. Conventional social networkingservices lack a connection grouping mechanism that provides users withrelevant suggestions for additional connections to add to an existinggroup of connections. Consequently, users are less likely to takeadvantage of groups of connections, and the user experience of thesocial networking service is diminished.

SUMMARY

To enhance the user experience of the social networking service,embodiments of the invention provide suggestions to assist a user whenthe user is creating a group of the user's existing connections. In oneembodiment, after a user has started to create a new group ofconnections, other existing connections of that user are suggested whilethe user continues to add connections to the group. The connections tosuggest to the user are selected based on their similarity to a commoncharacteristic among the connections that have already been added to thegroup. The connections in the group may have different types ofcharacteristics, such as age, gender, geographic location, number ofcommon connections with another user, interests, and affinities, just toname a few. The common characteristic is determined, in one embodiment,based on the characteristic having the highest degree of similarityamong the users in the new group. The user may then add additionalconnections to the group from the set of suggested connections or fromthe user's entire list of connections. As additional connections areadded to the group, the social networking system may update thesuggestions of connections to add to the group. In this way, the socialnetworking system uses feedback gained during the group creation processto suggest additional connections of the user to add to the group,thereby facilitating the group creation process in a dynamic fashion. Asadditional connections are added to the group, the system's predictionof the desired group will tend to improve, and the suggested connectionswill likewise tend to become more relevant.

In another embodiment, the common characteristic is calculated based onboth positive and negative feedback of the group. For example, inaddition to providing positive feedback by selecting a connection to addto the group, the user may provide negative feedback by expresslyindicating that a connection will not be added to the group. In oneembodiment, the user interface mechanism that provides the suggestedconnections also allows the user to ignore or otherwise expresslyindicate that a connection (such as a suggested connection) will not beadded to the group or is otherwise not relevant to the new group. Thisnegative feedback may be used in the selection process for suggestedconnections, for example, by identifying one or more characteristicscommon to the negatively selected connections and avoiding suggestingother connections with a similar characteristic. In this way, bothpositive and negative feedback from the user may be used to refine thedefinition of the new group so that more relevant suggestions can beprovided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level conceptual diagram illustrating connections of auser within various groups, or subsets, in a social networking system,in accordance with an embodiment of the invention.

FIG. 2 is a high-level block diagram of a system for creating groups ofconnections in a social networking system, in accordance with anembodiment of the invention.

FIG. 3 is an interaction diagram of a process for providing suggestedconnections based on a common characteristic of a new connectiongrouping, in accordance with an embodiment of the invention.

FIGS. 4A-C are screenshots of an interface for suggesting connectionswhen a user is creating a new group, in accordance with an embodiment ofthe invention.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

Overview of a Social Networking System

A social networking system offers its users the ability to communicateand interact with other users of the social networking system. In use,users join the social networking system and then connect with otherusers, individuals, and entities to whom they desire to be connected.Connections may be added explicitly by a user, for example, the userselecting a particular other user to be a friend, or automaticallycreated by the social networking system based on common characteristicsof the users (e.g., users who are alumni of the same educationalinstitution). Connections in social networking systems may be in bothdirections or may be in just one direction. For example, if Bob and Joeare both users and connect with each another, Bob and Joe are eachconnections of the other. If, on the other hand, Bob wishes to connectto Sam to view Sam's posted content items, but Sam does not choose toconnect to Bob, a one-way connection may be formed where Sam is Bob'sconnection, but Bob is not Sam's connection. Some embodiments of asocial networking system allow the connection to be indirect via one ormore levels of connections (e.g., friends of friends).

In addition to interactions with other users, the social networkingsystem provides users with the ability to take actions on various typesof items supported by the service. These items may include groups ornetworks (where “networks” here refer not to physical communicationnetworks, but rather social networks of people) to which users of theservice may belong, events or calendar entries in which a user might beinterested, computer-based applications that a user may use via theservice, transactions that allow users to buy or sell items via theservice, and interactions with advertisements that a user may perform onor off the social networking system. These are just a few examples ofthe items upon which a user may act on a social networking system, andmany others are possible. Though many of the embodiments and examplesprovided herein are directed to particular embodiments of a socialnetworking system, other embodiments may include other environmentsinvolving different types of social networks, social content, and othertypes of websites and communication mechanisms.

User generated content enhances the user experience on the socialnetworking system. “Content” may include any type of media content, suchas status updates or other textual messages, location information,photos, videos, advertisements, and links. Content “items” representpieces of content that are represented as objects in the socialnetworking system. In this way, users of a social networking system areencouraged to communicate with each other by “posting” content items ofvarious types of media through various communication channels. Usingcommunication channels, users of a social networking system increasetheir interaction with each other and engage with the social networkingsystem on a more frequent basis. One type of communication channel is a“stream” in which a user is presented with a series of content itemsthat are posted, uploaded, or otherwise provided to the socialnetworking system from one or more users of the service. The stream maybe updated as content items are added to the stream by users.Communication channels of an example social networking system arediscussed further in U.S. application Ser. No. 12/253,149, filed Oct.16, 2008, which is hereby incorporated by reference in its entirety.

However, as a user becomes connected with a large number of other usersof the social networking system, the user may wish to view certainusers' generated content more often than, or separately from, otherusers' generated content. For example, a user may have close friends,casual acquaintances, college roommates, co-workers, professionalcontacts, and family members as connections on the social networkingsystem. Delineating the boundaries between these connections isdesirable because the user may wish to view content from close friendsand family, for example, before content from professional contacts. Itmay be difficult, however, for the social networking system todifferentiate between professional contacts and close friends. Moreover,a user may be overburdened to manually select connections to a newconnection group because of the number of connections on the socialnetworking system that the user has accumulated.

Users may connect for many different reasons on a social networkingsystem. For example, a user's connections in a social network may begrouped by the type of connection shared in real life, such asco-workers, housemates, teammates, classmates, travel companions,relationships, relatives, and random connections. As shown in FIG. 1,however, a user may have many ungrouped connections 100 and only a fewgrouped connections. A user may create a group of connections that sharethe same college network 110 or a group that shares the same geographiclocation 120. Another group may include connections that share a highnumber of common connections with each other. Each of the connections inthese groups have many different characteristics, such as age, gender,affinities, interests, geographic location, college networks,memberships in groups, fan pages, and the like. A user may manuallycreate a new group of connections 140. This new group of connections 140is a subset of the entire set of the user's connections of the user'ssocial network.

So that the social networking system can provide useful suggestions forthe user, the social networking system first predicts the type of groupthat the user is creating. The group that the user intends to create maybe based at least in part on one or more common characteristics of theconnections who have already been added to the group. This informationmay also include profile information provided by the users, and it mayalso include or otherwise be based on actions performed in connectionwith the social networking system.

For example, if a user speaks French and starts creating a grouping ofconnections that also speak French, the social networking system maydetermine that the common characteristic of the new group is that theyare all (or mostly) French speaking Thus, the system may suggestadditional connections that also speak French, as indicated in theirprofile information, as suggested connections for the new group. Inanother example, the social networking system may determine that theconnections added to the group have a high degree of connectednesswithin the group (i.e., the connections who have been added are alsohighly connected to each other). Accordingly, the social networkingsystem may suggest additional connections of the user who themselves areconnected to a large number of the user's connections who have beenadded to the group.

In another example, the social networking system may determine that thecommon characteristic of the connections that have been added to thegroup is that the user has a high affinity for the connections. Having ahigh affinity for another user may indicate a high level of interactionand engagement with that user and the user's posts. Thus, thischaracteristic may be useful if a user is creating a group ofconnections with whom the user intends to engage and interact on aregular basis within the social networking system. In another exampleusing affinity, the social networking system may determine that thecommon characteristic of the connections that have been added to thegroup is that the connections themselves each have a high affinity for aparticular object in the social networking system, such as for anotheruser or entity. Affinities are described further in U.S. applicationSer. No. 11/503,093, filed Aug. 11, 2006, which is hereby incorporatedby reference in its entirety. These are just a few examples of differenttypes of groups that the social networking system can predict and assistthe user to create.

System Architecture

FIG. 2, in one embodiment, depicts a high-level block diagram of thesystem architecture involved in controlling the accessibility of contentposted on the social networking system. A user device 205 may includeany device that allows a user of a social networking system to interactwith other users of the social networking system. The user device 205communicates with the web server 215 to send and receive data. A userdevice 205 may request from the web server 215 a web page comprisingcontent items. While accessing the web page, a user may post content tothe social networking system via the user device 205 by uploadingcontent. A user profile store 210 communicates with the web server 215to provide access to a user profile object 220 for each user of thesocial networking system. The user profile object 220 provides access togrouping data 240 for each user of the social networking system that canbe used to generate automatic groupings of connections. The groupingdata 240 also comprises user-defined groupings of connections, in oneembodiment. In other embodiments, a user device 205 interfaces directlywith a web server 215 to upload and receive content items. In anotherembodiment, the social networking system is implemented on anapplication running on a client device (e.g., a portable communicationsdevice) that accesses information from the social networking systemusing APIs or other communication mechanisms.

The web server 215 comprises a content display module 225 and aconnection grouping management module 230. The content display module225 displays a content item uploaded by a connection via a connectiondevice 250, 255, 260, or 265 and identifies an object on the socialnetworking system associated with the uploaded content item. Theconnection grouping management module 230 provides an interface for theuser to create and edit groupings of connections. This interface alsoprovides suggested connections based on the connections already selectedin the grouping. The connection grouping management module 230 includesa user interface module to perform this functionality.

The connection grouping management module 230 also retrieves groupingdata 240 from the user profile object 220 associated with the connectionuploading the content via the connection device 250, 255, 260, or 265.Using the grouping data 240, the connection grouping management module230 determines common characteristics of the new grouping created by theuser, as described in more detail below.

Connection devices 250, 255, 260, and 265 represent different devicesused by groups of connections made up of individuals, entities, or both.The connection grouping management module 230 receives a content itemfrom a connection device 250, 255, 260 or 265 and determines thegrouping(s) of the connection associated with the device according tothe selected groupings stored as grouping data 240. For example,connection devices 250 may relate to devices used by a user's relatives,while connection devices 255, 260, and 265 may relate to devices used bya user's classmates, coworkers, or other relationships.

Connection Grouping Management

FIG. 3 is an interaction diagram showing how a user may create a newgroup from the user's connections in the social networking system. Asdiscussed earlier, a user's profile information is maintained 305 in theuser profile store 210 as a user profile object 220 comprising, amongother things, grouping data 240.

The web server 215 receives 310 a selection to create a new group of theuser's connections from the user device 205. The web server 215 enables315 a user interface loaded with the user's profile information tomanage the grouping of connections. The web server 215 responds to therequest by providing 320 the user device 205 a web page that contains auser interface including a list of the user's connections. The userinterface allows the user to select connections from the list to add tothe group using the user device 205. The user device 205 sends 325 theuser's selection of connections for the new group to the web server 215.

User profile information is requested 330 from the user profile store210 for the selected connections. This user profile information mayinclude demographic information, express interests, a list of theconnection's own connections, networks or groups to which the connectionbelongs, the connection's affinities for various objects, the user'saffinity for the connection, the geo-location of the connection, thetype of device (e.g., mobile) that the connection is currently using orlast used, the date or time, and any other social contextual information(e.g., birthdays, events, holidays or the like) that may be relevant forgrouping a set of connections. The user profile information is thenreceived 335 from the user profile store 210 for the selectedconnections. This user profile information may also include informationabout the connection that is computed rather than stored. For example, aconnection's affinity for a particular user or other object in thesocial networking system may be computed rather than stored.

Using the received profile information about the selected connections,at least one common characteristic among the selected connections isdetermined 340. For example, a common characteristic of the selectedconnections may be that they are all male, or that they share at leasttwo friends in common, or that the user has at least a threshold levelof affinity for each connection. The common characteristic may bedefined as the characteristic shared by a majority of the selectedconnections. Or, in another example, a common characteristic isabsolutely shared by the entire set of selected connections. The commoncharacteristic used by the social networking system may be apredetermined characteristic, such as the number of friends in commonwith the other added connections. Alternatively, the commoncharacteristic may be dynamically defined based on which characteristic,or which set of characteristics, has the highest degree of similarityamongst the selected connections. As such, the common characteristic ofthe selected connections may be defined in various ways, yet the commoncharacteristic is descriptive of each of the selected connections.Embodiments for determining the common characteristic are described inmore detail in the following section. The determined commoncharacteristic is then used to generate 345 a set of suggestedconnections.

The set of suggested connections received from the web server 215 ispresented 350 to the user in a user interface via the user device 205.The user may make a selection of one or more additional connections toadd to the group, either from the main list of connections or from theprovided list of suggested connections to add to the group. The user'sselection is received 355 by the user device 205. The selection mayinclude a rejection of a suggested connection, a selection of a newconnection independent from the suggested connections, or an acceptanceof a suggested connection. A user's feedback about the suggestedconnections may be determined 360 based on the user's selection. Theacceptance of a suggested connection provides express positive feedback,while the rejection of a suggested connection provides express negativefeedback.

In one embodiment, the selection of one or more connections that werenot suggested connections is used as neutral feedback. The reasoningbehind this is that the user did not directly respond to a suggestedconnection. In another embodiment, this selection of a new connectionindependent from the suggested connections provides negative feedbackbecause the user has implicitly rejected the suggested connections inignoring the suggested connections.

The selection may also include an indication that the user ignored orotherwise expressly indicated that one or more of the connections(either in the main list of connections or in the list of suggestedconnections) are not relevant to the group that the user is creating.This indication also provides negative feedback to the social networkingsystem. In one embodiment, the negative feedback for ignoring asuggested connection may be less than the negative feedback forexpressly rejecting a suggested connection. The positive and negativefeedback may be used by the social networking system to refine theidentification of suggested connections provided to the user, as furtherdiscussed below.

When the user indicates that the user is done adding creating the newconnection grouping (e.g., by pressing a “save group” button), thedefinition of the new group is stored 365 in a computer readable storagemedium, such as in a record associated with the user's profile in thesocial networking system. On the other hand, the user may indicate thatthe user is not done adding connections to the new connection groupingby continuing to select connections from the user interface, rejectsuggested connections, or accept suggestions. While the user has notindicated that the user is done adding connections, the process repeatsat step 340 in which a common characteristic of the selected connectionsis determined 340, including the newly selected connections. As aresult, the determination of a common characteristic incorporates thenewly selected connections, providing additional information to thesocial networking system in the form of positive and negative feedbackto refine the suggestions provided to the user. This information isretrieved from the user profile information for each of the newlyselected connections. Thus, the suggestions provided to the user becomemore relevant through this process of gathering information about theselected connections.

Determination of a Common Characteristic and Identification of SuggestedConnections

The determination of commonality, a common, or correlated,characteristic among the selected connections may be based on varioustechniques. In one embodiment, a common characteristic may be fixed andpredetermined by the social networking system. For example, the socialnetworking system may evaluate each of the user's connections notalready added in the group and select the connections that have thehighest number of friends already in the group. In doing so, theprovided suggestions represent “friends of friends,” or connections thatmay travel in the same social circles. Thus, the common characteristicis simple because an evaluation of the new group of selected connectionsis not needed to make the determination. The common characteristic maybe fixed by the social networking system in that the commoncharacteristic does not change in response to feedback received from theuser.

Another simple characteristic that may describe the selected connectionsis the rates of interactions with the social networking system. A usermay have selected connections with above average rates of interactionswith the social networking system, meaning that the selected connectionsinteract with the social networking system at a rate that is aboveaverage for the social networking system. This would indicate activeusers of the social networking system. In this case, the suggestedconnections would include connections that have not been added to thegroup that have above average rates of interactions with the socialnetworking system. In one embodiment, a predetermined threshold rate ofinteraction may be configured by the administrators of the socialnetworking system. If the selected connections have rates of interactionthat are higher than the threshold, then the social networking systemmay determine that this characteristic should be used to suggestconnections for the group to the user.

More complex characteristics of the selected connections, such assimilar age group, common membership in geographic and college networks,and common interests and affinities, may be used to dynamicallydetermine the common characteristic of the new group. For each of theselected connections in the group, profile information is maintained ina database that identifies the complex characteristics of theconnection. The records for the selected connections in the group may bejoined to determine which complex characteristics are shared among theentire set of selected connections. One or more characteristics may beshared among the selected connections, or no single characteristic maybe shared among all of the selected connections. This determination of acommon characteristic is more complex because an evaluation of theentire set of selected connection must be made. Additionally, thedynamic nature of the determination means that the common characteristicmay change based on the feedback received from the user and the newlyadded connections.

To determine the common characteristic of the new group in the instancewhere no single characteristic is shared among the selected connections,the characteristic that is shared by the highest number of selectedconnections may be selected as the common characteristic for the newgroup. Otherwise, the one or more characteristics shared by the selectedconnections may be used as the common characteristic, alone or incombination. For example, the selected connections may share threecharacteristics: males aged 18-25 with “music” listed in theirinterests. These characteristics may be contained in the connections'profile information. In one embodiment, the determined commoncharacteristic for the group is a combination of the threecharacteristics. Thus, the social networking system would select theconnections not already in the new group that have all threecharacteristics.

Alternatively, the determined common characteristic may be defined toselect a subset of the shared characteristics. The selection of thesubset may be based on weights, configured by administrators of thesocial networking system, on certain complex characteristics that havebeen identified as being correlated to the user's interests.Predetermined weights for certain characteristics may indicate degreesof relevance to the user based on the user's interactions with objectson the social networking system. For example, user profile informationmay include affinity scores for other users and/or objects or otherthings, entities, interests, concepts, or other objects in the socialnetworking system. A user may have a high affinity score for football.If one of the shared characteristics of the selected connections werefootball, this characteristic may outweigh the other matchingcharacteristics. Thus, shared characteristics may be ranked based onthese weights, such as an affinity score, configured by administratorsof the social networking system.

The selection of the subset may also be based in part on maximizingcomputational efficiency while providing relevant suggestions to theuser. With hundreds of millions of users of a social networking system,the computational costs for evaluating each user's connections may beexpensive in terms of processing power. Achieving the optimal balancefor each user involves gathering more data about how the user createsnew groups in the form of positive and negative feedback. Byincorporating the user's feedback into the determination of the commoncharacteristic, as described above, the social networking system is ableto learn the characteristics that are more relevant than others to theuser. In this way, the social networking system may subsequently rankthe shared characteristics based on the feedback. As a result, thesocial networking system can provide more relevant suggestions ofconnections to add to a new group as more groups are created by the userwhile also maximizing computational efficiency.

As an example, the initial determination of the common characteristic ofa new connection grouping may be that the selected connections are maleand between the ages of 26-35. Suggested connections may include anothermale that is in the same age group as well as a female in the same agegroup. If the female is accepted, then the determination of the commoncharacteristic may change to depend on just the age group. However, asmore connections are added to the new connection grouping, the commoncharacteristic may adaptively change to the most common characteristicshared by most of the connections. Thus, a ranking of the shared commoncharacteristics of the connections may be used to select the most commoncharacteristic.

As described above, one characteristic of a group may be that theselected connections are highly connected with each other, meaning thata threshold number of the selected connections are directly connectedwith the other selected connections. The threshold may be predeterminedby the administrator of the social networking system or may becalculated based on the average number of connections that are connectedwith the other selected connections. The social networking system mayidentify this characteristic by counting the number of directconnections between the selected connections. Once this characteristicof highly connectedness between the selected connections has beenidentified, suggestions may be generated by counting the number ofdirect connections between the selected connections and connections whohave not been added to the group, ranking these connections by thecount, and selecting the connections with the highest counts. Similarly,the number of common networks shared between the selected connectionsmay be counted to rank the selected connections.

In another embodiment, the determination is initially fixed at a certaincharacteristic, such as an age group until more connections are selectedto provide more information to verify the initial characteristic as thedefinition of the new group. The accuracy of the initial fixedcharacteristic is verified by analyzing the feedback provided by theuser in accepting, rejecting, or ignoring a suggested connection. If theinitial characteristic accurately describes the new group, then the useris expected to accept the suggested connection based on the initialcharacteristic, providing positive feedback. However, if the initialcharacteristic does not accurately describe the new group, then the usermay reject or ignore a suggested combination, providing negativefeedback. As a result, the initial characteristic may be a positivepredictor or a negative predictor of an accurate characteristic thatdescribes the new group, based on whether the feedback received from theuser in response to the suggested connection was positive or negative.

Different types of distributions apply to different characteristics ofusers in the social networking system, such as a normal distribution(i.e., a bell curve distribution), as well as other well knowndistributions (e.g., log-normal, binomial). A best fit analysis may beperformed to determine the appropriate distribution for eachcharacteristic across the users of the social networking system. Thisenables the social networking system to assign characteristics of usersto the appropriate distribution for statistical analysis. Informationabout the user's connections is analyzed to determine local parameters(e.g., 70% of this user's connections are male). Then, appropriatestatistical tests (e.g., t-test, chi-square test, binomial test) areused to determine the probability of a characteristic arising if theconnections in the group were selected randomly. For example, if 70% ofa user's connections are male, then the probability of randomlyselecting a group of 5 female connections is about 2.5%. Finally, thepositive and/or negative predictors may be weighed based on theirlikelihood, e.g., the probability of randomly selecting a groupexhibiting a shared characteristic.

As mentioned above, the selected connections of a new group may sharemultiple characteristics. One of the shared characteristics may bedesignated as a positive predictor because of the user's feedback inresponse to suggested connections. The positive predictor may be definedas the average characteristic of the selected connections. An average isused to define an expected value of the characteristic. For example, apositive predictor may be defined as the characteristic of a group ofselected connections with an average age of 27. Thus, connections thathave not been added to the group that are within one standard deviationof age 27 may be selected as suggested connections. If thecharacteristic is a non-numeric value, such as geographic location orgender, the characteristic may be transformed into a number from the set{0, 1}, where the value of 1 indicates the presence of thecharacteristic.

The positive predictor may change based on the feedback received fromthe user and the connections being added to the group. Forcharacteristics that are normally distributed, the standard deviation ofthe group may be examined to determine whether the common characteristicfor the group should be changed. If the standard deviation of the groupbecomes larger than the standard deviations of other characteristicsshared by the group, then the shared characteristic with the smalleststandard deviation may be selected as the common characteristic for thegroup. A small standard deviation for a shared characteristic indicatesthat the expected value, or average, of the characteristic shared bymost of the selected connections, thus indicating a stronger correlationthan a shared characteristic with a larger standard deviation. Thecomparison of averages and standard deviations for two groups is knownas a t-test. Here, the average and standard deviation of the positivepredictor is compared to another shared characteristic of the group. AnANOVA, a series of t-tests, may be used to analyze multiple groups todetermine if there is a variance amongst the groups. Post-hoc analysismay be used to determine the actual variances between the groups. Insum, the positive predictor may change based on the standard deviationof the shared characteristics of the group.

Negative predictors may also be tracked by the social networking system.If a user expressly rejects a suggested connection, at least onecharacteristic of the rejected suggested connection is a negativepredictor. A negative predictor may be defined as the average of acharacteristic that has been expressly rejected by a user. Using at-test, or a series of t-tests, to compare the standard deviations ofnegative predictors, strong negative predictors may be identified ashaving the smallest standard deviations. For example, if the userconsistently rejects suggested connections that have a high affinity forsports, then this characteristic may be used as a strong negativepredictor.

A score may be used to evaluate connections that have not already beenadded to the new group. In one embodiment, the score may rely solely onthe value of the positive predictor for each connection. In anotherembodiment, the score may rely on both the positive predictor and strongnegative predictors, as discussed above. A potential suggestedconnection may be evaluated using a score that evaluates whether thepotential suggested connection is an outlier from the positive andnegative predictors. An outlier is a value that is numerically distinctfrom the rest of the data. A value that is within one standarddeviation, for example, is not an outlier.

The distance, or numerical difference, from the positive predictor, orthe average of the common characteristic, should be small to achieve ahigher score for characteristics that are normally distributed. In otherwords, the similarity value of the characteristic for the potentialsuggested connection to the positive predictor is directly proportionalto the score. One function for scoring the positive predictor isf(x_(i))=|(1/(avg(x)−x_(i)))|. Similarly, if the distance from thenegative predictor is small, then a larger penalty should be assessed.One function for scoring the negative predictor isg(y_(i))=|(1/(avg(y)−x_(i)))|. Thus, a score to rank potential suggestedconnections can be defined as S=f(x_(i))−g(y_(i)). Weighting parameters(α, β) may be used by the social networking system to adjust the effectsof positive and negative feedback on the score, for example, so that thescore may be defined as S=α*f(x_(i))−β*g(y_(i)).

Other functions for scoring positive and negative predictors may also beformulated for characteristics that are not normally distributed.Returning to the example above, in which a group of 5 female connectionswas selected by a user, even though 70% of the user's connections aremale, a p value may be determined for each characteristic of the user'sconnections. The gender characteristic's p value, in this example, wouldbe 2.5%, meaning that the probability that the group of 5 femaleconnections was selected by chance is 2.5%. The probability that thecharacteristic is being intentionally chosen by the user may becalculated by a proxy, 1-p. In this case, the probability that the userintentionally selected 5 female connections is 97.5%. The probabilitythat a group member belongs in the group may also be calculated, e.g.,0% for male group members, assuming that the gender characteristic isimportant. From this, the probability that a connection should beexcluded from a group based on a certain characteristic, e.g., theprobability that males should be excluded, by taking the product of theproxies of the characteristics' p values, or 97.5%*100%, assuming thatthe characteristics are independent. As a result, the user's connectionsmay be ordered according to these calculated probabilities.

In addition, a machine learning model may be implemented “on the fly” totrain on the social networking system. The machine learning model maycharacterize connections that have been already added to the group aspositive examples and characterize suggested connections that have beenrejected or ignored by the user as negative examples in its training toidentify the common characteristic of the group. Along withhighly-ranked suggested connections, the machine learning model mayrandomly assign a small number of the user's other connections assuggestions. Predictions from this model could then be used to rank theuser's remaining connections.

Combining the examples above, assume that the positive predictor for agroup is an average age of 27 and that the negative predictor is a highaffinity for sports. Thus, if one potential suggested connection is aged27 but has a high affinity for sports, the score would be lower than apotential suggested connection that did not have a high affinity forsports. In other words, the score is defined as the value of thepositive predictor for the potential suggested connection hedged by thevalue of the negative predictor(s). The score can then be used to rankthe potential suggested connections. The connections with the highestscores are selected as suggested connections.

A chi-square test can be used to test the goodness of the fit of amodel, where the expectations of a predictive statistical model aretested against the actual feedback received from the user. Here, we haveassumed that the distributions of the characteristics of users on thesocial networking system follow a standard t-distribution, or bell curvedistribution such that the positive and negative predictors may be usedto score potential suggested connections. The actual feedback receivedfrom the user may be used to determine whether the distribution for apredictor is a good fit for the received data.

Suppose that the common characteristic of the new connection grouping isthat the selected connections are between the ages of 26-32 and that theaverage age is 30. If the user selects several connections in adrastically different age group, such as the parents and grandparents ofone of the selected connections who are in their 50s and 70s, theseselections may indicate that the initial characteristic may beincorrect. A chi-square test on the positive predictor for the group,the age characteristic, may be used to determine that the agecharacteristic does not follow a standard t-distribution. As a result,the t-tests described above should not be applied to this characteristicfor this group. This affects how the social networking system mayinterpret the feedback received.

User Interface

FIGS. 4A-C are screenshots of one embodiment of the invention. FIG. 4Adisplays a dialog sent by a web server 215 that includes an interface400 allowing a user to create a group of the user's connections in asocial networking system. A user may add to the new group by manuallyselecting graphical images of connections, such as connections 415, 420,425, and 430, or by typing names of connections in an input field 410.As illustrated, two connections have already been selected 405 and areshaded 415 and 420. Both of the selected connections 415 and 420 aremales from Austin, Tex. After the user is finished selectingconnections, a button 435 to create the list is provided to store thedefinition of the connection grouping. The user may also select a button440 to cancel the creation of the new connection grouping. Using aninput field 445, the user may also name the connection grouping.

As illustrated in FIG. 4B, the connection grouping interface 400 hasexpanded to provide the user with “Friend List Suggestions,” orsuggested connections based on the characteristics of the selectedconnections. Here, the user is presented with two connections 450 and460. The first connection 450 is Mary from Austin, Tex., while thesecond connection 460 is Drew from San Francisco, Calif. The user isalso asked whether to add these connections to the new connectiongrouping and may select “Yes” or “No” under each of the suggestedconnections using the selectable links 455 and 465.

In FIG. 4C, the connection grouping interface 400 has adaptively changedthe suggested connections based on the feedback provided by the user.Although not shown, it is indicated 405 that the user has selected anadditional connection for the new connection grouping. For illustrationpurposes, let us assume that Drew from San Francisco, Calif. wasselected. This connection is another male, but the geographic locationof the connection is not the same as the previously selected connection415 and 420. Thus, new suggested connections 470 and 480 have beenprovided to the user from the different geographic locations. The usermay select links 475 or 485 beneath the suggested connections toindicate whether to add or reject the connections from the newconnection grouping. These new suggested connections 470 and 480 may bebased on other characteristics of the selected connections, such asaffinities, interests, common friends, and the like.

In another embodiment, suggested connections may also include otherusers of the social networking system that are not directly connected tothe user, but that are highly likely to be known by the user based onthe user's connections. By incorporating these indirect connections intothe pool of suggested connections, the social networking system enablesthe user to build and grow his or her network of users. In yet anotherembodiment, suggested connections may also include entities that existoutside of the social networking system. For example, a third partyentity may be suggested by the social networking system to be added aspart of the new connection grouping. In this way, the user may bepresented with new entities that may have been previously unknown to theuser.

Implications of Connection Grouping Management

As a result of improved connection grouping management, users areencouraged to make more groups of their connections, which may in turnenhance the user's ability to take advantage of various features of thesocial networking system. For example, a user may wish to publishcontent to certain connection groups, or restrict access to contentbased on the connection groups. Further, the groups will likely be moreaccurate and complete because the common characteristic of each groupwill have been refined through the process of receiving user feedbackregarding suggested connections and the use of statistical tools toverify the positive and negative predictors.

Furthermore, the communication channels that shape the user's experiencewith a typical social networking system are made to be a betterreflection of what a user is interested in seeing. The user experiencewould be less disrupted if the social networking system were to compelthe user to create certain groupings (such as “family” or “topfriends”).

The creation of these groups of connections also improves the socialnetworking system's understanding of relationship data throughout thesocial graph of the connections on the social networking system. Suchunderstanding may have direct impacts on potential revenue streamsbecause it enables the targeting of certain demographics (i.e., mothers)and provides better predictions of when users are likely to respond tosocial suggestions or calls to action.

Because connection grouping management is tailored for each user, theuser's experience on the social networking system is improveddramatically by helping the user to organize the information presentedby the numerous connections accumulated on the social networking system,as well as in real life. By automating the process of understanding andanalyzing the boundaries of different circles of friends, connectiongrouping management helps to simplify the user experience by efficientlymanaging information flow.

Summary

The foregoing description of the embodiments of the invention has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the invention to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a tangible computer readable storage medium or any typeof media suitable for storing electronic instructions, and coupled to acomputer system bus. Furthermore, any computing systems referred to inthe specification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsof the invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

What is claimed is:
 1. A computer-implemented method comprising: storinga user profile for a user of a social networking system, the user havingone or more connections, where each connection is another user of thesocial networking system with whom the user has established arelationship; receiving from the user an indication to add a connectionof the user to a group of connections of the user; determining one ormore common characteristics between two or more of the connections inthe group; determining one or more additional connections from the oneor more connections in the user profile who are not in the group tosuggest based on the one or more common characteristics; and suggestingto the user to add the one or more additional connections to the group.2. The method of claim 1, wherein the one or more common characteristicsinclude a first common characteristic and a second commoncharacteristic, and determining one or more additional connections fromthe one or more connections in the user profile to suggest based on theone or more common characteristics, further comprises: identifying afirst connection having the first common characteristic and not thesecond common characteristic as an additional connection of the one ormore additional connections.
 3. The method of claim 2, furthercomprises: receiving from the user an indication to add the firstconnection to the group; and adaptively changing the one or more commoncharacteristics to a different characteristic based on the indication.4. The method of claim 1, wherein determining one or more commoncharacteristics between two or more of the connections in the groupcomprises: determining that no single characteristic is common to allconnections in the group.
 5. The method of claim 4, further comprising:identifying one or more characteristics that are shared by the highestnumber of connections in the group; and identifying the one or morecommon characteristics as the identified one or more characteristics. 6.The method of claim 1, wherein the one or more common characteristicsinclude a characteristic that indicates the user and the connections inthe group interact with the social networking system at a rate that isabove average for the social networking system.
 7. The method of claim1, wherein determining one or more common characteristics between two ormore of the connections in the group comprises: identifying a positivepredictor based on a characteristic having a low variation among theconnections that have been added to the group; computing a score usingthe positive predictor for a plurality of candidate connections thathave not been added to the group; and choosing the one or more suggestedconnections based at least in part on the scores for the candidateconnections.
 8. The method of claim 7, further comprising: identifying apositive predictor based on a characteristic having a high variationamong the connections that have been added to the group, wherein thescore is further computed using the negative predictor.
 9. The method ofclaim 7, further comprising: receiving an indication from the user notto add a particular connection to the group; and identifying a negativepredictor based on a characteristic of the particular connection thatthe user indicated not to add to the group, wherein the score is furthercomputed using the negative predictor.
 10. The method of claim 7,wherein the score is directly proportional to a similarity value of acharacteristic for a candidate connection to the positive predictor. 11.A computer-implemented method comprising: receiving from a user of asocial networking system an indication to add a connection of the userto a group of connections of the user, wherein the user has one or moreconnections and each connection is another user of the social networkingsystem with whom the user has an established a relationship; determiningone or more common characteristics between two or more of theconnections in the group; determining one or more additional connectionsfrom the one or more connections in the user profile who are not in thegroup to suggest based on the one or more common characteristics; andsuggesting to the user to add the one or more additional connections tothe group.
 12. The method of claim 11, wherein the one or more commoncharacteristics include a first common characteristic and a secondcommon characteristic, and determining one or more additionalconnections from the one or more connections in the user profile tosuggest based on the one or more common characteristics, furthercomprises: identifying a first connection having the first commoncharacteristic and not the second common characteristic as an additionalconnection of the one or more additional connections.
 13. The method ofclaim 12, further comprises: receiving from the user an indication toadd the first connection to the group; and adaptively changing the oneor more common characteristics to a different characteristic based onthe indication.
 14. The method of claim 11, wherein determining one ormore common characteristics between two or more of the connections inthe group comprises: determining that no single characteristic is commonto all connections in the group.
 15. The method of claim 14, furthercomprising: identifying one or more characteristics that are shared bythe highest number of connections in the group; and identifying the oneor more common characteristics as the identified characteristics. 16.The method of claim 11, wherein the one or more common characteristicsinclude a characteristic that indicates the user and the connections inthe group interact with the social networking system at a rate that isabove average for the social networking system.
 17. A computer programproduct for defining groups of users of a social networking system, thecomputer program product comprising a non-transitory computer-readablestorage medium containing computer program code for: storing a userprofile for a user of a social networking system, the user having one ormore connections, where each connection is another user of the socialnetworking system with whom the user has established a relationship;receiving from the user an indication to add a connection of the user toa group of connections of the user; determining one or more commoncharacteristics between two or more of the connections in the group;determining one or more additional connections from the one or moreconnections in the user profile who are not in the group to suggestbased on the one or more common characteristics; and suggesting to theuser to add the one or more additional connections to the group.
 18. Thecomputer program product of claim 17, wherein the one or more commoncharacteristics include a first common characteristic and a secondcommon characteristic, and determining one or more additionalconnections from the one or more connections in the user profile tosuggest based on the one or more common characteristics, furthercomprises: identifying a first connection having the first commoncharacteristic and not the second common characteristic as an additionalconnection of the one or more additional connections.
 19. The computerprogram product of claim 18, further comprises: receiving from the useran indication to add the first connection to the group; and adaptivelychanging the one or more common characteristics to a differentcharacteristic based on the indication.
 20. The computer program productof claim 17, wherein the one or more common characteristics include acharacteristic that indicates the user and the connections in the groupinteract with the social networking system at a rate that is aboveaverage for the social networking system.